package com.relytosoft.mizar.media.display.services.service;

import cn.hutool.core.lang.tree.Tree;
import com.baomidou.mybatisplus.extension.service.IService;
import com.relytosoft.mizar.media.display.api.entity.Rotagroup;
import com.relytosoft.mizar.media.display.api.entity.RotagroupChannel;
import com.relytosoft.mizar.media.display.api.pojo.vo.RotagroupVo;

import java.util.List;

/**
 * 巡检组接口
 *
 * @Author SunLi
 * @Date: 2022/4/11 18:47
 * @Version 1.0
 */
public interface RotagroupService extends IService<Rotagroup> {


    /**
     * 添加巡检组
     * @param rotagroup
     * @param rotagroupChannelList
     * @return
     */
    boolean insertRotagroup(Rotagroup rotagroup, List<RotagroupChannel> rotagroupChannelList);

    /**
     * 修改巡检组
     * @param rotagroup
     * @param rotagroupChannelList
     * @return
     */
    boolean updateRotagroup(Rotagroup rotagroup,List<RotagroupChannel> rotagroupChannelList);

    /**
     * 修改巡检组状态
     * @param id 巡检组ID
     * @param status 状态 1启用 0删除
     * @return
     */
    int updateRotagroupStatus(int id,int status);

    /**
     * 验证巡检组名称是否唯一
     * @param rotagroup
     * @return
     */
    boolean checkRotagroupNameUnique(Rotagroup rotagroup);

    /**
     * 查询已启用的巡检组列表
     * @param name 巡检组名称
     * @return
     */
    List<RotagroupVo> selectRotagroupList(String name);

    /**
     * 查询已启用的巡检组列表树
     * @param rotagroupVoList
     * @return
     */
    List<Tree<Integer>> buildRotagroupListTree(List<RotagroupVo> rotagroupVoList);
}
